////////////////////////////////////////////////////////////////////
// File:				Batch.h
// Author(s):			Gerald Leung (GL), Jeremy Cowles (JC)
// Creation Date:		Sat Feb 06 03:35:00 PST 2008
// Spec:				
// Purpose:				Batch Classes Interface
////////////////////////////////////////////////////////////////////
#ifndef			BATCH_H
#define			BATCH_H
// Implementation-dependent Includes
#include		<vector>
// Interface Includes
#include		"WorkUnit.h"

using			std::vector;
class			Batch
{
	unsigned	_nWorkUnits, _nCompleted, _nScheduled, _nUnscheduled, _nFailed;
	vector<unsigned> _vnWorkUnitIDs;

public:
				Batch					(void);
				Batch					(unsigned nWorkUnits,
										unsigned nCompleted,
										unsigned nScheduled,
										unsigned nUnscheduled,
										unsigned nFailed);
				~Batch					(void);
	void		addWorkUnit				(unsigned nWorkUnitID);
	unsigned	getNumWorkUnits			() {return	_nWorkUnits;}
	unsigned	getNumCompleted			() {return	_nCompleted;}
	unsigned	getNumScheduled			() {return	_nScheduled;}
	unsigned	getNumUnscheduled		() {return	_nUnscheduled;}
	unsigned	getNumFailed			() {return	_nFailed;}
	void		setNumWorkUnits			(unsigned nWU) {_nWorkUnits = nWU;}
	void		setNumCompleted			(unsigned nCompleted) {_nCompleted = nCompleted;}
	void		setNumScheduled			(unsigned nScheduled) {_nScheduled = nScheduled;}
	void		setNumUnscheduled		(unsigned nUnscheduled) {_nUnscheduled = nUnscheduled;}
	void		setNumFailed			(unsigned nFailed) {_nFailed = nFailed;}
};

#endif			// BATCH_H